package com.bandit.config;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 将服务封装在RpcServiceConfig内并添加版本和组信息
 * @author Bandit
 * @create 2022/2/23 15:50
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RpcServiceConfig {

    /**
     * 服务版本
     */
    private String version = "";
    /**
     * 当接口有多个实现类时，按组进行区分
     */
    private String group = "";
    /**
     * 服务封装在此
     */
    private Object service;

    /**
     * 有多个接口就获取第一个接口
     * @return
     */
    public String getServiceName(){return this.service.getClass().getInterfaces()[0].getCanonicalName();}
    public String getRpcServiceName(){return getServiceName()+group+version;}
}
